CPP=g++
#PGFLAG=-pg
CPPFLAGS=-O2 -Wall
#CPPFLAGS=-g -O0 -Wall
LDFLAGS=-shared

.cc.o:
	$(CPP) $(CPPFLAGS) $(PGFLAG) -c $<

OBJS = \
	fifo.o \
	scheduler.o \
	cbr_address.o cbr.o cbr_compressor.o \
	cbr_context_model.o cbr_crtable.o cbr_debug.o cbr_msgcache.o \
	cbr_object.o cbr_packet.o cbr_reqresp.o \
	cbr_rreqtable.o cbr_rtable.o cbr_timers.o cbr_triple.o \
	cbr_acache.o cbr_ip.o cbr_eth.o cbr_crt.o

#libcbr.so: $(OBJS)
#	$(CPP) $(LDFLAGS) -o $@ $(OBJS)

cbrd: $(OBJS) cbr_daemon.o
	$(CPP) $(CPPFLAGS) $(PGFLAG) -lpthread -o $@ $(OBJS) cbr_daemon.o

FIFO_TEST_OBJS = cbr_debug.o fifo.o fifo_test.o

fifo_test: $(FIFO_TEST_OBJS)
	$(CPP) $(CPPFLAGS) -o $@ $(FIFO_TEST_OBJS)

all: cbrd

.PHONY: clean
clean:
	rm -f $(OBJS) libcbr.so cbr_daemon.o cbrd

clean_fifo_test:
	rm -f $(FIFO_TEST_OBJS)
